// 导入相关的依赖包
const path = require('path');
const fs = require('fs');
const host = require('../config/host');
// 处理图片的类
class Photo {
    // 上传预览图片
    preview(req, res) {
        // 接收前端的文件(图片)
        let file = req.file;
        if (file == undefined) {
            res.send({
                code: -1,
                msg: '上传图片失败。'
            })
        }
        else {
            // 定义图片路径 
            // http://127.0.0.1:3000/images/1.jpg
            let picUrl = `${host.url}/upload/images/${file.filename}`;
            // 反馈图片上传信息
            if (picUrl) {
                res.send({
                    code: 200,
                    msg: '上传图片成功。',
                    picUrl
                })
            }
        }
    }

    // 删除图片
    delete(req, res) {
        // 相对地址 http://
        let picUrl = req.body.picUrl;
        //通过slice方法，分割出图片前面的url地址
        let index = picUrl.indexOf('upload');
        // 判断该图片路径是否存在
        if (index > -1) {
            // 拼接图片路径
            let temp_path = path.join(__dirname, '../public/', picUrl.slice(index));
            // console.log('--->', temp_path);
            // fs.unlink删除文件
            fs.unlink(temp_path, function (err) {
                // err 如果为null 就删除图片成功 ； 否则删除失败
                if (err) {
                    res.send({
                        code: -1,
                        msg: '删除图片失败。'
                    })
                }
                else {
                    //删除图片文件成功
                    res.send({
                        code: 200,
                        msg: '删除图片成功。'
                    })
                }
            })
        }
        else {
            res.send({
                code: 404,
                msg: '该路径找不到图片资源'
            })
        }
    }

    // 上传预览图片(编写符合富文本框接口格式)
    editorUpload(req, res) {
        // console.log('上传图片:',1111111)
        // 接收前端的文件(图片)
        let file = req.file;
        let alt = req.body.alt || '默认说明'
        let href = req.body.href || '默认链接'
        if (file == undefined) {
            res.send({
                code: -1,
                msg: '上传图片失败。'
            })
        }
        else {
           
            // 定义图片路径 
            // http://127.0.0.1:3000/images/1.jpg
            let picUrl = `${host.url}/upload/images/${file.filename}`;
            // 反馈图片上传信息
            let info = {
                // errno 即错误代码，0 表示没有错误。
                //       如果有错误，errno != 0，可通过下文中的监听函数 fail 拿到该错误码进行自定义处理
                "errno": 0,
                // data 是一个数组，返回图片Object，Object中包含需要包含url、alt和href三个属性,它们分别代表图片地址、图片文字说明和跳转链接,alt和href属性是可选的，可以不设置或设置为空字符串,需要注意的是url是一定要填的。
                "data": [
                    {
                        url: picUrl,
                        alt,
                        href
                    },
                ]
            }
            // 按照富文本框组件的要求 设置响应数据的格式
            res.send(info)
        }
    }
}

module.exports = new Photo();
